剑指offer 12.数值的整数次方

12.数值的整数次方

题目

给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。

保证base和exponent不同时为0

思路

问题也不是很大,如果不是要求效率就可以直接分类讨论,一个循环解决,要求效率的话就要用快速幂,我没用快速幂,就分类讨论了一下,最后输出结果。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public double Power(double base, int exponent) {
if (exponent == 0) {
return 1;
}
if (base == 0) {
return 0;
}
double ans = 1;
boolean flag = false;
if (exponent > 0) {
flag = true;
} else {
flag = false;
exponent = -exponent;
}
for (int i = 1; i <= exponent; i++) {
ans = ans * base;
}
if (!flag) {
ans = 1.0 / ans;
}
return ans;
}
---本文结束,感谢阅读---